--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Node / ReticulumProjects / MeshChatX.git / files / meshchatx / src / frontend / js / interfaceDiscoveryUtils.js
Displaying Raw • Download
meshchatx/src/frontend/js/interfaceDiscoveryUtils.js 450ed9e35490702052539e98baa04edaabf876e7 (450ed9e3) Text, 1.97 KB
T8b949e/**
* RNode carrier frequency as integer Hz for API payloads (Reticulum stores Hz, not MHz decimals).
*/
Tff7b72export Tff7b72function Te6edf3parseRNodeFrequencyHzTb4b4b4(Te6edf3valueTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3value Tff7b72=== Tff7b72null Tff7b72|| Te6edf3value Tff7b72=== Tff7b72undefined Tff7b72|| Te6edf3value Tff7b72=== Ta5d6ff""Tb4b4b4) Tb4b4b4{
Tff7b72return Tff7b72nullTb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Tff7b72typeof Te6edf3value Tff7b72=== Ta5d6ff"number" Tff7b72&& Tffa657NumberTb4b4b4.Tffa657isFiniteTb4b4b4(Te6edf3valueTb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72let Te6edf3f Tff7b72= Te6edf3valueTb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3f Tff7b72<= T79c0ff0Tb4b4b4) Tb4b4b4{
Tff7b72return Tffa657MathTb4b4b4.Te6edf3roundTb4b4b4(Te6edf3fTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3f Tff7b72>= T79c0ff1Te6edf3_000_000Tb4b4b4) Tb4b4b4{
Tff7b72return Tffa657MathTb4b4b4.Te6edf3roundTb4b4b4(Te6edf3fTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3isInteger Tff7b72= Tffa657MathTb4b4b4.Te6edf3absTb4b4b4(Te6edf3f Tff7b72- Tffa657MathTb4b4b4.Te6edf3roundTb4b4b4(Te6edf3fTb4b4b4)Tb4b4b4) Tff7b72< T79c0ff1e-9Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3isInteger Tff7b72|| Tb4b4b4(Te6edf3isInteger Tff7b72&& Te6edf3f Tff7b72< T79c0ff10Te6edf3_000Tb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3f Tff7b72*= T79c0ff1Te6edf3_000_000Tb4b4b4;
Tb4b4b4}
Tff7b72return Tffa657MathTb4b4b4.Te6edf3roundTb4b4b4(Te6edf3fTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72let Te6edf3s Tff7b72= Tffa657StringTb4b4b4(Te6edf3valueTb4b4b4)Tb4b4b4.Te6edf3trimTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3toLowerCaseTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3replaceTb4b4b4(Ta5d6ff/_/gTb4b4b4, Ta5d6ff""Tb4b4b4)Tb4b4b4;
Tff7b72let Te6edf3mult Tff7b72= T79c0ff1Tb4b4b4;
Tff7b72const Te6edf3pairs Tff7b72= Tb4b4b4[
Tb4b4b4[Ta5d6ff"ghz"Tb4b4b4, T79c0ff1e9Tb4b4b4]Tb4b4b4,
Tb4b4b4[Ta5d6ff"mhz"Tb4b4b4, T79c0ff1e6Tb4b4b4]Tb4b4b4,
Tb4b4b4[Ta5d6ff"khz"Tb4b4b4, T79c0ff1e3Tb4b4b4]Tb4b4b4,
Tb4b4b4[Ta5d6ff"hz"Tb4b4b4, T79c0ff1Tb4b4b4]Tb4b4b4,
Tb4b4b4]Tb4b4b4;
Tff7b72for Tb4b4b4(Tff7b72const Tb4b4b4[Te6edf3suffixTb4b4b4, Te6edf3mTb4b4b4] Tff7b72of Te6edf3pairsTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3sTb4b4b4.Te6edf3endsWithTb4b4b4(Te6edf3suffixTb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3s Tff7b72= Te6edf3sTb4b4b4.Te6edf3sliceTb4b4b4(T79c0ff0Tb4b4b4, Tff7b72-Te6edf3suffixTb4b4b4.Te6edf3lengthTb4b4b4)Tb4b4b4.Te6edf3trimTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3mult Tff7b72= Te6edf3mTb4b4b4;
Tff7b72breakTb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tff7b72const Te6edf3n Tff7b72= Tffa657NumberTb4b4b4(Te6edf3sTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Tffa657NumberTb4b4b4.Tffa657isFiniteTb4b4b4(Te6edf3nTb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72return Tff7b72nullTb4b4b4;
Tb4b4b4}
Tff7b72let Te6edf3f Tff7b72= Te6edf3n Tff7b72* Te6edf3multTb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3f Tff7b72<= T79c0ff0Tb4b4b4) Tb4b4b4{
Tff7b72return Tffa657MathTb4b4b4.Te6edf3roundTb4b4b4(Te6edf3fTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3f Tff7b72>= T79c0ff1Te6edf3_000_000Tb4b4b4) Tb4b4b4{
Tff7b72return Tffa657MathTb4b4b4.Te6edf3roundTb4b4b4(Te6edf3fTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3isInteger Tff7b72= Tffa657MathTb4b4b4.Te6edf3absTb4b4b4(Te6edf3f Tff7b72- Tffa657MathTb4b4b4.Te6edf3roundTb4b4b4(Te6edf3fTb4b4b4)Tb4b4b4) Tff7b72< T79c0ff1e-9Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3isInteger Tff7b72|| Tb4b4b4(Te6edf3isInteger Tff7b72&& Te6edf3f Tff7b72< T79c0ff10Te6edf3_000Tb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3f Tff7b72*= T79c0ff1Te6edf3_000_000Tb4b4b4;
Tb4b4b4}
Tff7b72return Tffa657MathTb4b4b4.Te6edf3roundTb4b4b4(Te6edf3fTb4b4b4)Tb4b4b4;
Tb4b4b4}
T8b949e/**
* Coordinates and optional discovery numerics: empty or invalid means "not set" (Reticulum treats omission as optional).
*/
Tff7b72export Tff7b72function Te6edf3numOrNullTb4b4b4(Te6edf3valueTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3value Tff7b72=== Tff7b72null Tff7b72|| Te6edf3value Tff7b72=== Tff7b72undefined Tff7b72|| Te6edf3value Tff7b72=== Ta5d6ff""Tb4b4b4) Tff7b72return Tff7b72nullTb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72typeof Te6edf3value Tff7b72=== Ta5d6ff"string"Tb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3t Tff7b72= Te6edf3valueTb4b4b4.Te6edf3trimTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3t Tff7b72=== Ta5d6ff""Tb4b4b4) Tff7b72return Tff7b72nullTb4b4b4;
Tff7b72const Te6edf3n Tff7b72= Tffa657NumberTb4b4b4(Te6edf3tTb4b4b4)Tb4b4b4;
Tff7b72return Tffa657NumberTb4b4b4.Tffa657isFiniteTb4b4b4(Te6edf3nTb4b4b4) Tff7b72? Te6edf3n Tff7b72: Tff7b72nullTb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Tff7b72typeof Te6edf3value Tff7b72=== Ta5d6ff"number"Tb4b4b4) Tb4b4b4{
Tff7b72return Tffa657NumberTb4b4b4.Tffa657isFiniteTb4b4b4(Te6edf3valueTb4b4b4) Tff7b72? Te6edf3value Tff7b72: Tff7b72nullTb4b4b4;
Tb4b4b4}
Tff7b72return Tff7b72nullTb4b4b4;
Tb4b4b4}
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────